/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package util;

import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author nMoncho
 */
public class VisitasTableModel extends AbstractTableModel{

    private List<VisitaRow> modelo;

    public VisitasTableModel(List<VisitaRow> modelo){
        this.modelo = modelo;
    }

    @Override
    public int getRowCount() {
        return modelo.size();
    }

    @Override
    public int getColumnCount() {
        return 5;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        VisitaRow row = modelo.get(rowIndex);
        Object retorno = null;
        switch(columnIndex){
            case 0: retorno = row.getSocio().getLegajo(); break;
            case 1: retorno = row.getSocio().getApellido()+", "+row.getSocio().getNombre();break;
            case 2: retorno = row.getCantidadInvitados(); break;
            case 3: retorno = row.getPuntajeParcial(); break;
            case 4: retorno = row.getPuntajeTotal(); break;
        }

        return retorno;
    }

    @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        VisitaRow row = modelo.get(rowIndex);
        switch(columnIndex){
            case 2:
                row.setCantidadInvitados((Integer)aValue);
                fireTableDataChanged();
                break;
        }
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        if(columnIndex == 2)
            return true;
        else
            return false;
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        Class clazz = null;
        switch(columnIndex){
            case 0: clazz = String.class; break;
            case 1: clazz = String.class; break;
            case 2: clazz = Integer.class; break;
            case 3: clazz = Integer.class; break;
            case 4: clazz = Integer.class; break;
        }

        return clazz;
    }

    @Override
    public String getColumnName(int columnIndex) {
        String retorno = null;
        switch(columnIndex){
            case 0: retorno = "Nro. de Legajo"; break;
            case 1: retorno = "Apellido y nombre"; break;
            case 2: retorno = "Cant. de Invitados"; break;
            case 3: retorno = "Puntaje Parcial"; break;
            case 4: retorno = "Puntaje Total"; break;
        }

        return retorno;
    }

}
